package com.kj.tms.system.service.user.serviceImpl;


import com.kj.tms.pri.system.org.dto.OrgDto;
import com.kj.tms.pri.system.user.dto.UserOrgDto;
import com.kj.tms.pri.system.user.service.UserOrgService;
import com.kj.tms.system.service.user.dao.UserOrgMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;


/**
 * <p>项目名称：system<p>
 * <p>类名称：UserOrgServiceImpl<p>
 * <p>类描述：用户所属机构业务实现类<p>
 * @author 创建人：wangguoqing
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：wangguoqing
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
@Service
public class UserOrgServiceImpl implements UserOrgService {
    @Autowired
    private UserOrgMapper userOrgMapper;

    /**
     * @method      [queryByList]
     * @description [根据 OrgDto传值条件查询机构信息]
     * @author      [董世栋]
     * @version     1.0
     * @param
     * @return
     * @exception
     * @date
     */
    @Override
    public List<UserOrgDto> listByOrgCode(@RequestParam("orgCode") String orgCode) {
        UserOrgDto userOrgDto = new UserOrgDto();
        userOrgDto.setOrgCode(orgCode);
        return userOrgMapper.listUserOrg(userOrgDto);
    }

    /**
     * @method      [listOrgByUserId]
     * @description [根据用户ID获取机构]
     * @author      王国庆
     * @version     1.0
     * @param       userId  用户编码
     * @return
     * @exception
     * @date        2018年01月02日 15:31
     */
    @Override
    public List<OrgDto> listOrgByUserId(@RequestParam("userId") String userId){
        UserOrgDto userOrgDto = new UserOrgDto();
        userOrgDto.setUserId(userId);
        return userOrgMapper.listOrgByUserId(userOrgDto);

    }
    /**
     *
     * @Title: deleteByUser
     * @Description: 删除机构人员
     * @param userId     用户id
     * @param orgCode  机构编码
     * @return void 返回类型
     * @throws Exception
     */
    @Override
    public void deleteByUser(@RequestParam("userId") String userId, @RequestParam("orgCode")String orgCode){
        userOrgMapper.deleteByUser(userId,orgCode);
    }

    /**
     * @Method
     * @Param     personnelIds 人员数组   orgCode 机构编号
     * @Return
     * @Exception
     * @Description [批量删除同一机构下的选中的人员]
     * @Author      zhangsong
     * @Version     1.0
     * @Date        2017/11/17 15:21
     */
    @Override
    public void batchDeleteByUser(@RequestBody String[] personnelIds, @RequestParam("orgCode") String orgCode){
        userOrgMapper.batchDeleteByUser(personnelIds, orgCode);
    }

    @Override
    public void batchDeleteOrgByUser(@RequestBody String[] orgCodes, @RequestParam("userId") String userId){
        userOrgMapper.batchDeleteOrgByUser(orgCodes, userId);
    }
    /**
     * 增加人员机构角色
     * @param list
     */
    @Override
    public void batchAddUserOrg(@RequestBody List<UserOrgDto> list){
        userOrgMapper.batchAddUserOrg(list);
    }

    /**
     * @method      [listOrgRoleByPage]
     * @description [加载配置机构权限分页信息]
     * @author      王国庆
     * @version     1.0
     * @param       map
     * @return      List<UserOrgRoleDto>
     * @exception
     * @date        2017年12月13日 11:19
     */
    @Override
    public List<UserOrgDto> listOrgRoleByPage(@RequestBody Map map) {
        return userOrgMapper.listOrgRoleByPage(map);
    }

    /**
     * @method      [getUserOrgRoleCount]
     * @description [加载配置机构权限信息数量]
     * @author      王国庆
     * @version     1.0
     * @param       map
     * @return      int
     * @exception
     * @date        2017年12月13日 11:19
     */
    @Override
    public int getUserOrgRoleCount(@RequestBody Map map) {
        return userOrgMapper.getUserOrgRoleCount(map);
    }



    /**
     * @method      [ListOrgByUserOrgPage]
     * @description [根据当前机构加载配置机构权限分页信息]
     * @author      王国庆
     * @version     1.0
     * @param       map
     * @return      List<UserOrgDto>
     * @exception
     * @date        2017年12月14日 15:46
     */
    @Override
    public List<UserOrgDto> listOrgByUserOrgPage(@RequestBody Map map) {
        return userOrgMapper.listOrgByUserOrgPage(map);
    }

    /**
     * @method      [getOrgByUserOrgCount]
     * @description [根据当前机构加载配置机构权限信息数量]
     * @author      王国庆
     * @version     1.0
     * @param       map
     * @return      int
     * @exception
     * @date        2017年12月14日 15:47
     */
    @Override
    public int getOrgByUserOrgCount(@RequestBody Map map) {
        return userOrgMapper.getOrgByUserOrgCount(map);
    }

}
